草庐IT

Java Quartz 作业持久化

全部标签

python - 从 Hadoop mapreduce 作业打开 HDFS 上的文件

通常,我可以用这样的东西打开一个新文件:aDict={}withopen('WordLists/positive_words.txt','r')asf:aDict['positive']={line.strip()forlineinf}withopen('WordLists/negative_words.txt','r')asf:aDict['negative']={line.strip()forlineinf}这将打开WordLists文件夹中的两个相关文本文件,并将每一行作为正面或负面附加到词典中。但是,当我想在Hadoop中运行mapreduce作业时,我认为这行不通。我正在这样

hadoop - 为什么不能从 YARN 请求超过 32 个内核来运行作业?

设置:没有。节点数:3没有。内核数:每台机器32个内核RAM:每台机器410GBSpark版本:1.2.0Hadoop版本:2.4.0(Hortonworks)目标:我想运行超过32个执行器核心的Spark作业。问题:当我为Spark作业请求超过32个执行器内核时,出现以下错误:Uncaughtexception:Invalidresourcerequest,requestedvirtualcoresmaxconfigured,requestedVirtualCores=150,maxVirtualCores=32atorg.apache.hadoop.yarn.server.reso

multithreading - Mapreduce作业是否使用多线程

我很好奇mapreduce作业是否在单台机器上使用多线程。比如我的hadoop集群有10台服务器,默认情况下,如果输入文件足够大,就会有10个mappers。单个映射器是否在单台机器上使用多线程? 最佳答案 Isthesinglemapperusingmultiplethreadinginasinglemachine?是的。Mapreduce作业可以使用多线程映射器(多线程或线程池运行map方法)。我已经为MaponlyHbasejobs使用了更好的CPU利用率...MultiThreadedMapper非常适合如果您的操作是高度C

hadoop - sqoop 作业未使用参数运行

我正在尝试运行sqoop作业。我正在使用sqoop版本Sqoop1.4.6-cdh5.8.0但它不适用于此版本它在Sqoop1.4.5-cdh5.4.0上运行良好。sqoopjob--createE8--import--connectjdbc:mysql://localhost/test--usernameroot--passwordcloudera--tableNAME--hive-import-m1sqoopjob--execE8----tabledummy1是否有任何语法问题。如果有人可以帮助解决这个问题。Warning:/usr/lib/sqoop/../accumulodoe

hadoop - 由于空间问题导致 Spark 作业失败

我正在使用pyspark在Spark中编写批处理程序。以下是输入文件及其大小base-track.dat(3.9g)base-attribute-link.dat(18g)base-release.dat(543m)这些是每行一条记录的文本文件,每个字段由一个特殊字符分隔(引用代码)我正在对属性链接执行一些过滤操作并将它们分组并与其他表连接。我正在通过spark-submit将此程序提交到一个由Ambari管理的具有9个数据节点的Hadoop集群。每个数据节点包含140GB的RAM和3.5TB的磁盘空间。以下是我的pyspark代码importsysfrompysparkimportS

java - 为 Hadoop 作业指定 UTF-8 编码

在我正在编写的Hadoop作业中,我希望为我的映射器/缩减器使用UTF-8编码的字符串。如何指定UTF-8作为我的系统编码?如果我在本地运行代码,我可以只执行java-Dfile.encoding="UTF-8",但是当我尝试运行hadoopjapmyjar.jar-Dfile.encoding="UTF-8”,这没用。 最佳答案 我们发现问题是mapperjava进程没有-Dfile.encoding=UTF-8。我们必须将其添加到“mapreduce.map.java.opts”。与“mapreduce.reduce.java.

hadoop - 如何在 oozie 作业中指定多个 libpath?

我的oozie作业使用2个jarx.jar和y.jar,下面是我的job.properties文件。oozie.libpath=/liboozie.use.system.libpath=true当两个jar都位于HDFS上的相同位置/lib/x.jar和/lib/y.jar时,这非常有效现在我有2个jar放在不同的位置/lib/1/x.jar和/lib/2/y.jar。我如何重写我的代码,以便在运行mapreduce作业时同时使用这两个jar?注意:我已经引用了答案Howtospecifymultiplejarfilesinoozie但是,这并不能解决我的问题

java - 在 hadoop 中运行多个 MapReduce 作业

我想运行一系列mapreduce作业,所以最简单的解决方案似乎是jobcontroller。假设我有两份工作,job1和job2。我想在job1之后运行job2。好吧,它遇到了一些问题。经过数小时的调试,我将代码缩小为以下几行:JobConfjobConf1=newJobConf();JobConfjobConf2=newJobConf();System.out.println("***Point1");Jobjob1=newJob(jobConf1);System.out.println("***Point2");Jobjob2=newJob(jobConf2);System.out

python - Python 中的 Hadoop 流作业失败(不成功)

我正在尝试使用Python脚本在HadoopStreaming上运行Map-Reduce作业,但遇到与HadoopStreamingJobfailederrorinpython相同的错误但这些解决方案对我不起作用。当我运行“catsample.txt|./p1mapper.py|sort|./p1reducer.py”时我的脚本工作正常但是当我运行以下命令时:./bin/hadoopjarcontrib/streaming/hadoop-0.20.2-streaming.jar\-input"p1input/*"\-outputp1output\-mapper"pythonp1mapp

hadoop - 我可以动态重命名 oozie 作业名称吗

我们有一个Hadoop服务,其中有多个应用程序。我们需要通过重新执行相同的工作流来处理每个应用程序的数据。这些计划在一天的同一时间执行。问题是,当这些作业正在运行时,很难知道该作业正在为哪个应用程序运行/失败/成功。当然,我可以打开作业配置并知道它,但这确实需要时间,因为有10多个应用程序在该服务下运行。oozie中是否有任何选项可以在执行作业时动态传递工作流(或其中的一部分)的名称ooziejob-run-config-name""ORooziejob-run-config-nameSuffix""此外,我们不希望创建多个作业文件夹来单独执行,因为那样复制粘贴会太多。请推荐。